一些上下文:我正在解析一个具有account1
和account2
作为int
类型的会计分类帐.每个都是[0,99999]范围内的数字.我有很多组合需要考虑.
理想情况下,我想使用类似的东西
switch (account1, account2){ case (1,1): /*account1 is 1, account2 is 1*/ case (2,1): /*account1 is 2, account2 is 1*/ }
等等.(我只需要考虑大约20种可能的组合).
有没有办法在Java中实现这一目标?
我已经考虑过这个问题在java中存储数字对
并且可以建立一个IntPair
班级.也许如果我定义bool equals
那么我可以switch
在一个实例上,以类似的方式你可以打开java.lang.String
.
唉,这在Java中是不可能的.您只能在整数类型转换,或者一个java.lang.String
从Java版本7(您不能重写建立这个功能集成到自己的类型equals
,并hashCode
从java.lang.Object
).
但是,这能鼓舞你做一个黑客:
switch (Integer.toString(account1) + "_" + Integer.toString(account2)){ case "1_1": case "2_1": }
我发现这是令人惊讶的可读性.